home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MYUTIL / COPYMM2.OLD < prev    next >
Encoding:
Text File  |  1990-11-09  |  4.4 KB  |  3 lines

  1. ⓪ MODULE CopyMM2;⓪ ⓪ IMPORT GEMDOSIO; (*$E MOS *)⓪ ⓪ FROM InOut IMPORT Write, WriteLn, WriteString, WriteInt, Read, ReadString;⓪ ⓪ FROM Paths IMPORT SearchFile, ListPos;⓪ FROM PathEnv IMPORT HomePath;⓪ ⓪ FROM ShellMsg IMPORT ShellPath, StdPaths;⓪ ⓪ FROM Files IMPORT File, Access, Open, Close, Create, State,⓪(replaceOld, GetDateTime, SetDateTime;⓪ ⓪ FROM MOSGlobals IMPORT Date, Time;⓪ ⓪ FROM Clock IMPORT PackDate, PackTime;⓪ ⓪ FROM Binary IMPORT FileSize, WriteBytes, ReadBytes;⓪ ⓪ FROM Directory IMPORT MakeFullPath, DirQuery, DirEntry,⓪(QueryFiles, QueryAll, subdirAttr, FileAttrSet;⓪ ⓪ FROM FileNames IMPORT ValidatePath, FilePrefix;⓪ ⓪ FROM Strings IMPORT String, StrEqual, Append, Assign, Length, Space, Upper,⓪(Concat;⓪ ⓪ FROM SYSTEM IMPORT ADDRESS, ADR, TSIZE, BYTE, WORD, LONGWORD, ASSEMBLER;⓪ ⓪ VAR subdirs, ok: BOOLEAN;⓪$res: INTEGER;⓪$fOld, fNew: File;⓪$buf: ARRAY [1..$8000] OF CARDINAL;⓪$line: CARDINAL;⓪ ⓪ PROCEDURE error (s, m: ARRAY OF CHAR);⓪"VAR ch: CHAR;⓪"BEGIN⓪$WriteLn;⓪$WriteString (s);⓪$Write (' ');⓪$WriteString (m);⓪$Read (ch);⓪"END error;⓪ ⓪ PROCEDURE checkFile (REF path: ARRAY OF CHAR; entry: DirEntry): BOOLEAN;⓪ ⓪"VAR old, new: String;⓪&n: LONGCARD;⓪&dat1, dat2: Date;⓪&tim1, tim2: Time;⓪ ⓪"BEGIN⓪$Concat (path, entry.name, old, ok);⓪$IF subdirAttr IN entry.attr THEN⓪&IF entry.name[0] # '.' THEN⓪(IF StrEqual ('ST_FPU', FilePrefix (entry.name))⓪(OR StrEqual ('TT_FPU', FilePrefix (entry.name))⓪(OR StrEqual ('MAXIDISK', FilePrefix (entry.name))⓪(OR StrEqual ('TEMPLMON', FilePrefix (entry.name)) THEN⓪*(* diese Dateien nicht kopieren *)⓪*WriteLn;⓪*WriteString ('*** Ignoring ');⓪*WriteString (old);⓪*WriteString ('\ ***');⓪*RETURN TRUE⓪(END;⓪(Append ('\*.*', old, ok);⓪(DirQuery (old, QueryAll, checkFile, res);⓪(Close (fOld);⓪(Close (fNew);⓪(IF res < 0 THEN⓪*error (old, "Can't access subdir");⓪(END⓪&END⓪$ELSE⓪&IF StrEqual ('MM2SHELL.M2B', entry.name)⓪&OR StrEqual ('MM2SHELL.M2P', entry.name) THEN⓪((* diese Dateien nicht kopieren *)⓪(WriteLn;⓪(WriteString ('*** Ignoring ');⓪(WriteString (old);⓪(WriteString (' ***');⓪(RETURN TRUE⓪&END;⓪&SearchFile (entry.name, StdPaths, fromStart, ok, new);⓪&IF ok THEN⓪(Open (fOld, old, readOnly);⓪(IF State (fOld) < 0 THEN⓪*error (old, 'Open error');⓪*RETURN TRUE⓪(END;⓪(Open (fNew, new, readOnly);⓪(IF State (fNew) < 0 THEN⓪*error (new, 'Open error');⓪*Close (fOld);⓪*RETURN TRUE⓪(END;⓪(GetDateTime (fOld, dat1, tim1);⓪(GetDateTime (fNew, dat2, tim2);⓪(IF (PackDate (dat1) # PackDate (dat2))⓪(OR (PackTime (tim1) # PackTime (tim2)) THEN⓪*(*⓪+* Datei kopieren⓪+*)⓪*WriteLn;⓪*WriteString ('Update ');⓪*WriteString (old);⓪*WriteString (Space (30-INTEGER(Length(old))));⓪*WriteString (' from ');⓪*WriteString (new);⓪*Close (fOld);⓪*Create (fOld, old, writeOnly, replaceOld);⓪*LOOP⓪,ReadBytes (fNew, ADR (buf), SIZE (buf), n);⓪,IF n=0L THEN EXIT END;⓪,WriteBytes (fOld, ADR (buf), n)⓪*END;⓪*Close (fOld);⓪*Open (fOld, old, writeOnly);⓪*SetDateTime (fOld, dat2, tim2);⓪(END;⓪(Close (fOld);⓪(Close (fNew);⓪&ELSE⓪(error (new, 'Not found!');⓪&END;⓪$END;⓪$RETURN TRUE⓪"END checkFile;⓪ ⓪ PROCEDURE checkRes (): BOOLEAN;⓪"VAR ch: CHAR;⓪"BEGIN⓪$IF res < 0 THEN⓪&WriteLn;⓪&WriteString ('Error #');⓪&WriteInt (res,0);⓪&WriteLn;⓪&Read (ch);⓪&RETURN TRUE⓪$END;⓪$RETURN FALSE⓪"END checkRes;⓪ ⓪ VAR     n1: String;⓪(ch: CHAR;⓪ ⓪ BEGIN⓪"HomePath:= ShellPath;⓪"WriteString ('Copy MM2'); WriteLn;⓪"WriteLn;⓪"WriteString ('Updates all files on Disk in A: from same on StdPaths()');⓪"LOOP⓪$WriteLn;⓪$WriteLn;⓪$WriteString ('Insert next Disk and press <Return> (<Esc> to stop)...');⓪$REPEAT⓪&Read (ch);⓪&IF ch = 33C THEN EXIT END;⓪$UNTIL ch = 15C;⓪$WriteLn;⓪$line:= 1;⓪$DirQuery ('A:\*.*', QueryAll, checkFile, res);⓪$Close (fOld);⓪$Close (fNew);⓪$IF checkRes () THEN RETURN END;⓪"END⓪ END CopyMM2.⓪ ə
  2. (* $FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFECB48C$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54$FFEEBB54Ç$0000056CT.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$FFECB48C$00000233$00000299$0000027D$00000D87$FFF7C6E6$FFF7C6E6$FFF7C6E6$000005D0$000005E6$000005AF$0000059E$000005AD$000007D7$0000056C$0000021D¶Çé*)
  3.